home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
AMICUS
/
AMICUS04.ADF
/
idemo
/
getascii.c
< prev
next >
Wrap
C/C++ Source or Header
|
1985-10-26
|
4KB
|
107 lines
/****************************************************************
* *
* Copyright 1985, Commodore Amiga Inc. All rights reserved. *
* No part of this program may be reproduced, transmitted, *
* transcribed, stored in retrieval system, or translated into *
* any language or computer language, in any form or by any *
* means, electronic, mechanical, magnetic, optical, chemical, *
* manual or otherwise, without the prior written permission of *
* Commodore Amiga Incorporated, 983 University Ave, #D *
* Los Gatos, CA 95030 *
* *
****************************************************************/
/*** getascii.c ***/
/*****************************************************************************
*
* INTUITION Test Suite -- menu structures
*
* =Robert J. Mical=
* 28 April 1985
* (created: 31 January 1985)
*
* At one time or another, this program has tested all of the INTUITION
* features, and sometimes has tested even the limits of my patience.
*
* CONFIDENTIAL and PROPRIETARY
* Copyright (C) 1985, COMMODORE-AMIGA, INC.
* All Rights Reserved
*
****************************************************************************/
#include "idemoall.h"
#define SHIFTY (IEQUALIFIER_LSHIFT|IEQUALIFIER_RSHIFT|IEQUALIFIER_CAPSLOCK)
UBYTE RawToAscii[] =
{
/* 0x00 - 0x07 */ '`', '1', '2', '3', '4', '5', '6', '7',
/* 0x08 - 0x0F */ '8', '9', '0', '-', '=', '\\', NULL, '0',
/* 0x10 - 0x17 */ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
/* 0x18 - 0x1F */ 'o', 'p', '[', ']', NULL, '1', '2', '3',
/* 0x20 - 0x27 */ 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k',
/* 0x28 - 0x2F */ 'l', ';', '\'', NULL, NULL, '4', '5', '6',
/* 0x30 - 0x37 */ NULL, 'z', 'x', 'c', 'v', 'b', 'n', 'm',
/* 0x38 - 0x3F */ ',', '.', '/', NULL, '.', '7', '8', '9',
' ', /* 0x40 Space */
NULL, /* 0x41 Backspace */
NULL, /* 0x42 Tab */
NULL, /* 0x43 Enter */
NULL, /* 0x44 Return */
NULL, /* 0x45 Escape */
NULL, /* 0x46 Delete */
NULL, /* 0x47 null */
NULL, /* 0x48 null */
NULL, /* 0x49 null */
'-', /* 0x4A NPad's - */
};
UBYTE AsciiShifted[] =
{
/* 0x00 - 0x07 */ '~', '!', '@', '#', '$', '%', '^', '&',
/* 0x08 - 0x0F */ '*', '(', ')', '_', '+', '|', NULL, '0',
/* 0x10 - 0x17 */ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
/* 0x18 - 0x1F */ 'O', 'P', '{', '}', NULL, '1', '2', '3',
/* 0x20 - 0x27 */ 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K',
/* 0x28 - 0x2F */ 'L', ':', '\"', NULL, NULL, '4', '5', '6',
/* 0x30 - 0x37 */ NULL, 'Z', 'X', 'C', 'V', 'B', 'N', 'M',
/* 0x38 - 0x3F */ '<', '>', '?', NULL, '.', '7', ' 8', '9',
' ', /* 0x40 Space */
NULL, /* 0x41 Backspace */
NULL, /* 0x42 Tab */
NULL, /* 0x43 Enter */
NULL, /* 0x44 Return */
NULL, /* 0x45 Escape */
NULL, /* 0x46 Delete */
NULL, /* 0x47 null */
NULL, /* 0x48 null */
NULL, /* 0x49 null */
'-', /* 0x4A NPad's - */
};
UBYTE GetAscii(c)
UBYTE c;
{
if ((c & 0x7F) > sizeof(RawToAscii)) return(0);
if (c & 0x80) return(AsciiShifted[c & 0x7F]);
else return(RawToAscii[c]);
}
UBYTE GetKey(message)
struct IntuiMessage *message;
{
/*???printf("c=%lx\n",message->Code);*/
if (message->Code & IECODE_UP_PREFIX) return(0);
if (message->Qualifier & SHIFTY) message->Code |= 0x80;
/*???printf("GetAscii=%lx\n",GetAscii(message->Code));*/
return(GetAscii(message->Code));
}